﻿using Newtonsoft.Json;
using System;

namespace Iptv.ResourceGather.Model
{
    /// <summary>
    /// 素材对象模型
    /// </summary>
    [Serializable]
    public partial class FootageModel
    {
        /// <summary>
        /// 获取或设置 [Id]
        /// </summary>
        public Guid Id { get; set; }

        /// <summary>
        /// 获取或设置 [多集id]多集id，同一值表示是同一多集，再编目时会自动载入
        /// </summary>
        public string Packid { get; set; }

        /// <summary>
        /// 获取或设置 [文件名]文件名（包含后缀）
        /// </summary>
        [JsonProperty("Filename")]
        public string FileName { get; set; }

        /// <summary>
        /// 获取或设置 [文件类型]文件类型（.avi .mp4）
        /// </summary>
        public string Filetype { get; set; }

        /// <summary>
        /// 获取或设置 [来源名称]来源名称
        /// </summary>
        public string Fromname { get; set; }

        /// <summary>
        /// 获取或设置 [来源的编码]来源的编码
        /// </summary>
        public string Fromcode { get; set; }

        /// <summary>
        /// 获取或设置 [来源的分类]来源的分类（一个来源可以有多个分类，支持多个目录）
        /// </summary>
        public string Fromcategory { get; set; }

        /// <summary>
        /// 获取或设置 [文件大小]文件大小
        /// </summary>
        public Int64 Filesize { get; set; }

        /// <summary>
        /// 获取或设置 [转换后的文件大小]转换后的文件大小（1.01G 110M 1025K）
        /// </summary>
        public string Filesizestr { get; set; }

        /// <summary>
        /// 获取或设置 [分辨率的高度]分辨率的高度
        /// </summary>
        public int Height { get; set; }

        /// <summary>
        /// 获取或设置 [分辨率的宽度]分辨率的宽度
        /// </summary>
        public int Width { get; set; }

        /// <summary>
        /// 获取或设置 [码率]码率
        /// </summary>
        public int Videobitrate { get; set; }

        /// <summary>
        /// 获取或设置 [时长]时长
        /// </summary>
        public int Duration { get; set; }

        /// <summary>
        /// 获取或设置 [相对路径]相对路径（开始不包含/,转成全小写)
        /// </summary>
        public string Relativepath { get; set; }

        /// <summary>
        /// 获取或设置 [相对目录]相对目录
        /// </summary>
        public string Relativedirectory { get; set; }

        /// <summary>
        /// 获取或设置 [是否已经删除]是否已经删除
        /// </summary>
        public bool Isdelete { get; set; }

        /// <summary>
        /// 获取或设置 [删除日期]删除日期
        /// </summary>
        public DateTime Deletetime { get; set; }

        /// <summary>
        /// 获取或设置 [是否已经发布]是否已经发布
        /// </summary>
        public bool Ispublish { get; set; }

        /// <summary>
        /// 获取或设置 [发布日期]发布日期
        /// </summary>
        public DateTime Publishtime { get; set; } = DateTime.Now;

        /// <summary>
        /// 获取或设置 [属性内容]属性内容（json格式的属性）
        /// </summary>
        public string Attributecontent { get; set; }

        /// <summary>
        /// 获取或设置 [添加日期]添加日期
        /// </summary>
        public DateTime Creationtime { get; set; } = DateTime.Now;

        /// <summary>
        /// 获取或设置 [MediaType]视频类型（对应则编目的类型）
        /// </summary>
        public string Mediatype { get; set; }

        /// <summary>
        /// 获取或设置 [MediaTypeName]视频类型名称
        /// </summary>
        public string Mediatypename { get; set; }

        /// <summary>
        /// 获取或设置 [NeedAudit]是否需要审核
        /// </summary>
        public bool Needaudit { get; set; }

        /// <summary>
        /// 获取或设置 [AuditStatus]审核状态 0 未审核 1 审核通过 2 审核不通过 3 审核中
        /// </summary>
        public int Auditstatus { get; set; }

        /// <summary>
        /// 获取或设置 [AuditStatusName]审核状态名称
        /// </summary>
        public string Auditstatusname { get; set; }

        /// <summary>
        /// 获取或设置 [AuditPersonCode]审核人员编码
        /// </summary>
        public string Auditpersoncode { get; set; }

        /// <summary>
        /// 获取或设置 [AuditPersonName]审核人员名称
        /// </summary>
        public string Auditpersonname { get; set; }

        /// <summary>
        /// 获取或设置 [AuditTime]审核日期
        /// </summary>
        public DateTime Audittime { get; set; } = DateTime.Now;

        /// <summary>
        /// 获取或设置 [AuditRemark]审核备注
        /// </summary>
        public string Auditremark { get; set; }

        /// <summary>
        /// 获取或设置 [PlayCount]播放次数
        /// </summary>
        public int Playcount { get; set; }

        /// <summary>
        /// 获取或设置 [DownLoadCount]下载次数
        /// </summary>
        public int Downloadcount { get; set; }

        /// <summary>
        /// 获取或设置 [SendCount]推送次数
        /// </summary>
        public int Sendcount { get; set; }

        /// <summary>
        /// 获取或设置 [素材类型]素材类型
        /// </summary>
        public string Type { get; set; }

        /// <summary>
        /// 获取或设置 [音频采样率]音频采样率
        /// </summary>
        public int Audiorate { get; set; }

        /// <summary>
        /// 获取或设置 [片头]片头(秒)
        /// </summary>
        public int Startduration { get; set; }

        /// <summary>
        /// 获取或设置 [片尾]片尾
        /// </summary>
        public int Endduration { get; set; }
    }
}
